// 给定一个单词，你需要判断单词的大写使用是否正确。

// 我们定义，在以下情况时，单词的大写用法是正确的：

// 全部字母都是大写，比如"USA"。
// 单词中所有字母都不是大写，比如"leetcode"。
// 如果单词不只含有一个字母，只有首字母大写， 比如 "Google"。
// 否则，我们定义这个单词没有正确使用大写字母。

// 示例 1:

// 输入: "USA"
// 输出: True
// 示例 2:

// 输入: "FlaG"
// 输出: False

// 来源：力扣（LeetCode）
// 链接：https://leetcode-cn.com/problems/detect-capital
// 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。

class Solution {
public:
    bool isBigChar(char ch)
    {
        return ch >= 'A' && ch <= 'Z';
    }
    bool detectCapitalUse(string word)
    {
        if(word.size()==0)
        {
            return false;
        }

        if(isBigChar(word[0]))
        {
            if(word.size()==1)
            {
                return true;
            }
            else if(isBigChar(word[1]))
            {
                bool is_ALLBigChar = true;
                for(int i=0;i<word.size();i++)
                {
                    if(!isBigChar(word[i]))
                        is_ALLBigChar = false;
                }
                return is_ALLBigChar;

            }
            else
            {
                bool is_ALLSmallCharRest = true;
                for(int i=1;i<word.size();i++)
                {
                    if(isBigChar(word[i]))
                        is_ALLSmallCharRest = false;
                }
                return is_ALLSmallCharRest;
            }


        }
        else
        {
            bool is_SmallChar = true;
            for(int i=0;i<word.size();i++)
            {
                if(isBigChar(word[i]))
                    is_SmallChar = false;
            }
            return is_SmallChar;
        }

    }
};